home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / dev / misc / AmigaSDLsrc.lha / amisrc / SDL_cursor_c.h < prev    next >
C/C++ Source or Header  |  2001-04-29  |  2KB  |  78 lines

  1. /*
  2.     SDL - Simple DirectMedia Layer
  3.     Copyright (C) 1997, 1998, 1999, 2000, 2001  Sam Lantinga
  4.  
  5.     This library is free software; you can redistribute it and/or
  6.     modify it under the terms of the GNU Library General Public
  7.     License as published by the Free Software Foundation; either
  8.     version 2 of the License, or (at your option) any later version.
  9.  
  10.     This library is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.     Library General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU Library General Public
  16.     License along with this library; if not, write to the Free
  17.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  
  19.     Sam Lantinga
  20.     slouken@devolution.com
  21. */
  22.  
  23. #ifdef SAVE_RCSID
  24. static char rcsid =
  25.  "@(#) $Id: SDL_cursor_c.h,v 1.3.2.3 2001/02/10 07:20:05 hercules Exp $";
  26. #endif
  27.  
  28. /* Useful variables and functions from SDL_cursor.c */
  29. #include "SDL_mouse.h"
  30.  
  31. extern int  SDL_CursorInit(Uint32 flags);
  32. extern void SDL_CursorPaletteChanged(void);
  33. extern void SDL_DrawCursor(SDL_Surface *screen);
  34. extern void SDL_DrawCursorNoLock(SDL_Surface *screen);
  35. extern void SDL_EraseCursor(SDL_Surface *screen);
  36. extern void SDL_EraseCursorNoLock(SDL_Surface *screen);
  37. extern void SDL_UpdateCursor(SDL_Surface *screen);
  38. extern void SDL_ResetCursor(void);
  39. extern void SDL_MoveCursor(int x, int y);
  40. extern void SDL_CursorQuit(void);
  41.  
  42. #define INLINE_MOUSELOCK
  43. #ifdef INLINE_MOUSELOCK
  44. /* Inline (macro) versions of the mouse lock functions */
  45. #include "SDL_mutex.h"
  46.  
  47. extern SDL_mutex *SDL_cursorlock;
  48.  
  49. #define SDL_LockCursor()                        \
  50.     do {                                \
  51.         if ( SDL_cursorlock ) {                    \
  52.             SDL_mutexP(SDL_cursorlock);            \
  53.         }                            \
  54.     } while ( 0 )
  55. #define SDL_UnlockCursor()                        \
  56.     do {                                \
  57.         if ( SDL_cursorlock ) {                    \
  58.             SDL_mutexV(SDL_cursorlock);            \
  59.         }                            \
  60.     } while ( 0 )
  61. #else
  62. extern void SDL_LockCursor(void);
  63. extern void SDL_UnlockCursor(void);
  64. #endif /* INLINE_MOUSELOCK */
  65.  
  66. /* Only for low-level mouse cursor drawing */
  67. extern SDL_Cursor *SDL_cursor;
  68. extern void SDL_MouseRect(SDL_Rect *area);
  69.  
  70. /* State definitions for the SDL cursor */
  71. #define CURSOR_VISIBLE    0x01
  72. #define CURSOR_USINGSW    0x10
  73. #define SHOULD_DRAWCURSOR(X)                         \
  74.             (((X)&(CURSOR_VISIBLE|CURSOR_USINGSW)) ==      \
  75.                     (CURSOR_VISIBLE|CURSOR_USINGSW))
  76.  
  77. extern volatile int SDL_cursorstate;
  78.